package io.jsen.meta.diff.annotation;


import io.jsen.meta.diff.annotation.empty.IgnoreIndexFeature;
import io.jsen.meta.diff.feature.IndexFeature;

import java.lang.annotation.*;

/**
 * 字段级别自定义convert
 *
 * @author jsen
 * @date 2021/4/6
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MetaFieldAnnotation {

    /**
     * 忽略diff字段
     *
     * @return if ignore
     */
    boolean ignore() default false;

    /**
     * 唯一键，标识对象唯一性
     *
     * @return is uk
     */
    boolean uniqueKey() default false;

    /**
     * 自定义名字
     *
     * @return alias
     */
    String alias() default "";

    /**
     * 字段的一些自定义特性
     *
     * @return features
     */
    Class<? extends IndexFeature> indexFeatures() default IgnoreIndexFeature.class;

}
